package czStvDpds.mapeditor;

import czStvDpds.mapmanagment.Tile;
import java.awt.Color;

/**
 * Stará se o rozpoznávání jednotlivých druhů dlaždic pouze podle jednoho
 * parametru (pravděpodobně hlavně ID)
 *
 * @author Jiří Švejda
 */
public class TileTypeManager {

    private static final Tile TILES[] = {
        new Tile(1, false, true, false),
        new Tile(2, false, true, true),
        new Tile(3, false, true, false),
        new Tile(4, true, true, true),
        new Tile(5, true, true, false),
        new Tile(6, true, false, false),
        new Tile(7, true, true, false),
        new Tile(8, true, false, true),
        new Tile(9, true, false, false)
    };

    public static int getNumberOfTiles() {
        return TILES.length;
    }
    
    /**
     * Vrátí dlaždici podle jejího ID
     *
     * @param id
     * @return
     */
    public static Tile getTile(int id) {
        for (int i = 1; i < TILES.length + 1; i++) {
            if (id == i) {
                return TILES[i - 1];
            }
        }
        
        return null;
    }
    
    /**
     * Vrátí dlaždici podle jejího jména
     * 
     * @param name
     * @return 
     */
    public static Tile getTile(String name) {
        for (int i = 1; i < TILES.length + 1; i++) {
            if (getName(i).equals(name)) {
                return TILES[i - 1];
            }
        }
        
        return null;
    }
    
    /**
     * Vrátí jméno dlaždice podle jejího ID
     * 
     * @param id
     * @return 
     */
    public static String getName(int id) {
        if (id == 1) {
            return "Vzduch";
        } else if (id == 2) {
            return "Keř";
        } else if (id == 3) {
            return "Strom";
        } else if (id == 4) {
            return "Plot";
        } else if (id == 5) {
            return "Mříž";
        } else if (id == 6) {
            return "Neprůstřelné sklo";
        } else if (id == 7) {
            return "Barel";
        } else if (id == 8) {
            return "Bedna";
        } else if (id == 9) {
            return "Zeď";
        } else {
            return null;
        }
    }

    /**
     * Vrátí barvu dlaždice podle jejího ID
     *
     * @param id
     * @return
     */
    public static Color getColor(int id) {
        if (id == 1) {
            return (Color.green);
        } else if (id == 2) {
            return (new Color(35, 143, 3));
        } else if (id == 3) {
            return (new Color(24, 100, 2));
        } else if (id == 4) {
            return (new Color(222, 78, 41));
        } else if (id == 5) {
            return (new Color(180, 187, 174));
        } else if (id == 6) {
            return (new Color(116, 253, 108));
        } else if (id == 7) {
            return (new Color(251, 56, 0));
        } else if (id == 8) {
            return (new Color(160, 87, 5));
        } else if (id == 9) {
            return (Color.black);
        } else if (id == 10) {
            return (Color.blue);
        } else {
            return (Color.white);
        }
    }
}
